/**
 * 项目名：	Rumba Plan
 * 
 * 版权所有(C)，上海海鼎信息工程股份有限公司，2006，所有权利保留。
 * 
 * 文件名：	HFieldCheckBox.java
 * 模块说明：	CheckBox输入框 | 服务端界面控件
 * 修改历史：
 * 2006-5-26 - lxm - 创建。
 */
package com.hd123.rumba.jsp;

import org.apache.ecs.html.Input;

import com.hd123.rumba.request.Dictionary;
import com.hd123.rumba.util.AccessMode;

/**
 * CheckBox输入框 | 服务端界面控件
 * <p>
 * 
 * 页面模型：<br>
 * <table border=0 cellspacing=3 cellpadding=0>
 * <tr bgcolor=skyblue>
 * <td>界面元素</td>
 * <td>对象属性</td>
 * </tr>
 * <tr>
 * <td><code>&lt;td&gt;</code></td>
 * <td><i>tdLabel</i></td>
 * </tr>
 * <tr bgcolor=aliceblue>
 * <td><code>&nbsp;&nbsp;...</code></td>
 * <td>参见{@link LabelHField LabelHField}</td>
 * </tr>
 * <tr>
 * <td><code>&lt;td&gt;</code></td>
 * <td><i>tdContent</i></td>
 * </tr>
 * <tr bgcolor=aliceblue>
 * <td><code>&nbsp;&nbsp;&lt;input type=checkbox&gt;</code></td>
 * <td>inputCheckBox</td>
 * </tr>
 * </table>
 * 
 * @author lxm
 * 
 */
public class HFieldCheckBox extends LabelHField {

  public HFieldCheckBox(Dictionary dd, String name, String caption, Boolean value, Object[] params) {
    super(dd, name, caption, value, params);
  }

  public HFieldCheckBox(Dictionary dd, String name, String caption, Boolean value) {
    super(dd, name, caption, value);
  }

  private Input inputCheckBox = null;

  /**
   * 只读属性：存放输入部分的界面元素&lt;input type=checkbox&gt;<br>
   * 对应的参数名"inputCheckBox"。
   */
  public Input getInputCheckBox() {
    if (inputCheckBox == null) {
      inputCheckBox = new Input();
      inputCheckBox.setType("checkbox");
      inputCheckBox.setID(this.getName());
      inputCheckBox.setName(this.getName());
    }
    return inputCheckBox;
  }

  protected void buildHTML(int accessMode, int promptMode) {
    super.buildHTML(accessMode, promptMode);
    Input inputCheckBox = this.getInputCheckBox();
    if (accessMode != AccessMode.READWRITE)
      inputCheckBox.setDisabled(true);
    if (accessMode != AccessMode.INVISIBLE && this.getValue() != null)
      inputCheckBox.setChecked(((Boolean) this.getValue()).booleanValue());
    this.assignElementAttrs(inputCheckBox, "inputCheckBox");
    this.getTdContent().addElement(inputCheckBox);
  }
}
